Information processing apparatus, print control method and program

ABSTRACT

An information processing apparatus, etc., are disclosed. The information processing apparatus includes: first rule storage means for storing a first conflict processing rule determined in accordance with a dependency relation held between two or more settings of the function of the print processing related program; second rule storage means for storing a second conflict processing rule determined in accordance with a dependency relation held between settings of the function of the print processing related program and the additional function and; and setting adjustment means for reading the first conflict processing rule and the second conflict processing rule from the first rule storage means and the second rule storage means, and for performing setting adjustment processing such that inconsistencies do not arise between any of two settings of the print processing related program function and the additional function based on the first conflict processing rule and the second conflict processing rule which have been read.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing apparatus, amethod of print control and a program for expanding the functionalitiesof print systems.

2. Description of the Related Art

Printer drivers for controlling the output of printers are usuallyprovided by printer manufacturers for installation by the end user:After installation, however, a need may arise to improve or addadditional functionality to the printer driver.

This is usually accomplished by plug-ins, which are software modulesgenerally used to modify or add functionality to software components.Thus, printer drivers that achieve the addition of a specific functionby using plug-ins are becoming more prevalent.

For example, a technique for achieving the simplification of printprocessing and the improvement of print speed in an informationprocessing system has been disclosed (for example, refer to JapanesePatent Laid-Open No. 2002-108580).

When additional functionality is added by a plug-in, the user may beallowed to modify the plug-in settings as desired (e.g., using a printsetting sheet user interface usually added to existing print settingsheets of the print driver). However, the modified settings may conflictwith the original settings or other settings (including settings forprinter drivers and settings for additional function modules). Oftenbefore an additional function is added, when a UI is provided to theuser to change print setting sheets, the settings are arranged in ordernot to cause inconsistencies among the settings. By inconsistencies, itis meant for example, that one cannot simultaneously have both the“Staple” and the “Collate” printer functions as settings. Thus, only theitems allowed for the user to set are selectable while othernon-selectable items are grayed out. That is, items for whichinconsistencies may arise when set by a user are prohibited. Theprocessing to prevent inconsistencies among the settings is known asconflict processing.

However, since the plug-in to be added is unknown to the printer driver,it is often difficult to determine inconsistencies. Thus, performance ofaccurate conflict processing remains a difficult task.

SUMMARY OF THE INVENTION

The present invention has been made in order to solve at least one ofthe problems described above. According to an aspect of the presentinvention, there is provided an information processing apparatus capableof adding an additional function to a print processing related program.The information processing apparatus includes: first rule storage meansfor storing a first conflict processing rule determined in accordancewith a dependency relation held between two or more settings of thefunction of the print processing related program; second rule storagemeans for storing a second conflict processing rule determined inaccordance with a dependency relation held between settings of thefunction of the print processing related program and the additionalfunction and; setting adjustment means for reading the first conflictprocessing rule and the second conflict processing rule from the firstrule storage means and the second rule storage means, and for performingsetting adjustment processing such that settings of the print processingrelated program function and the additional function do not conflictwith each other based on the first conflict processing rule and thesecond conflict processing rule which have been read.

According to another aspect of the present invention, there is provideda method of print control using an information processing system capableof adding an additional function to a print processing related program.The method includes: a first step of obtaining setting information onthe settings of the print processing related program function and theadditional function; and a second step of reading a first conflictprocessing rule and a second conflict processing rule from a first rulestorage means for storing the first conflict processing rule determinedin accordance with a dependency relation held between two or moresettings of the function of the print processing related program and asecond rule storage means for storing the second conflict processingrule determined in accordance with a dependency relation held betweensettings of the function of the print processing related program and theadditional function, and for performing setting adjustment processingsuch that settings of the print processing related program function andthe additional function do not conflict with each other by referring tothe setting information obtained in the first step based on the firstconflict processing rule and the second conflict processing rule whichhave been read.

Other features and advantages of the present invention will be apparentfrom the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a schematic configuration of aprint processing system including a host computer (informationprocessing system) according to an embodiment of the present invention.

FIG. 2 is a diagram illustrating an example of a memory map in a statein which a print processing related program (printer driver) has beenloaded into a RAM 2 of a host computer 3000 and has become executable.

FIG. 3 illustrates relationship between various modules of a printdriver when an additional plug-in module set 310 is installed.

FIG. 4 is a diagram illustrating a specific example of conflictprocessing in a conflict manager 303 and an inference engine 302.

FIG. 5 is a diagram illustrating a flow of initialization processingwhen the application 201 shown in FIG. 3 opens a UI of the printerdriver 204.

FIG. 6 is a diagram illustrating an example of a memory map of aninternal structure 305 that can be used by the printer driver 204.

FIG. 7 is a flowchart illustrating conflict processing when thebookbinding print function is selected.

FIGS. 8A and 8B illustrate a setting sheet showing addition of afunction, i.e., a book-binding print function of a plug-in module inaccordance with an embodiment of the present invention.

FIGS. 9A and 9B are diagrams illustrating examples of a finishing-touchsetting sheet, which is a UI of the printer driver 204.

FIG. 10 is a diagram illustrating an example of an expansion system ofthe printer driver 204.

FIG. 11A is an example of a dialog illustrating an example of anexpansion system of the printer driver 204.

FIG. 11B is an example of a dialog illustrating an example of anexpansion system of the printer driver 204.

FIG. 12A is an example of a dialog illustrating an example of anexpansion system of the printer driver 204.

FIG. 12B is an example of a dialog illustrating an example of anexpansion system of the printer driver 204.

DETAILED DESCRIPTION OF THE EMBODIMENTS

An information processing apparatus, a method of print control and aprogram thereof according to the present embodiment achieves conflictprocessing even in an environment in which a new function is added to aprint processing related program (printer driver) in a plug-in form.

In the following, a detailed description will be given of embodiments ofthe present invention with reference to the accompanied drawings. FIG. 1is a block diagram illustrating a schematic configuration of a printprocessing system including a host computer (information processingsystem) according to an embodiment of the present invention. In thisregard, although a print processing system is shown as an embodiment,the present invention is not limited to this. The present invention maybe applied to a standalone system, a system including a plurality ofsystems, and to a system in which processing is performed by connectingthrough a network such as a LAN (local area network), WAN (wide areanetwork), etc., as long as it is an environment in which a printerdriver can be executed.

In FIG. 1, reference numeral 3000 denotes a host computer (informationprocessing system), and includes a CPU (central processing unit) 1 whichexecutes processing on documents including a combination of graphics,images, characters, tables (including spreadsheets), etc., based on adocument processing program, etc., stored in a program ROM of a ROM(read only memory) 3 or an external memory 11. The CPU 1 integrallycontrols each of the devices connected to a system bus 4. Also, theprogram ROM of the ROM 3 or the external memory 11 stores an operatingsystem (OS), which is the control program of the CPU 1, etc., a font ROMof the ROM 3 or the external memory 11 stores font data, etc., to beused for the document processing described above, and a data ROM of theROM 3 or the external memory 11 stores various data to be used for theabove-described document processing, etc. Reference numeral 2 denotes aRAM (random access memory), and functions as a main memory, a work area,etc., of the CPU 1.

Reference numeral 5 is a keyboard controller (KBC), and controls theinput from a keyboard 9 and an unillustrated pointing device. Referencenumeral 6 is a CRT controller (CRTC), and controls the display of a CRT(cathode ray tube) display 10. Reference numeral 7 is a disk controller(DKC), and controls the access to and from the external memory 11 suchas a hard disk (HD), a flexible disk (FD), etc., which store a bootprogram, various applications, font data, user files, edit files, aprinter control command creation program (in the following, referred toas a printer driver), etc.

Reference numeral 8 is a printer controller (PRTC), which is connectedto a printer 1500 through a predetermined bi-directional interface(interface) 21, and executes communication control processing with theprinter 1500. In this regard, the CPU 1 executes, for example,outline-font expansion (rasterization) processing into a displayinformation RAM, which is set in the RAM 2, and provides WYSIWYG (whatyou see is what you get) on the CRT 10. Also, the CPU 1 opens variousregistered windows, and executes various data processing based on thecommands instructed by an unillustrated mouse cursor, etc., on the CRT10. When executing printing, the user opens the windows on the printsettings, and the user can perform the settings for the printer 1500described below, and the settings of the print processing method for theprinter driver including a selection of print mode.

In the printer 1500, reference numeral 12 is a printer CPU. The printerCPU 12 outputs an image signal as output information to a print part(printer engine) 17 connected to a system bus 15 based on the controlprogram, etc., stored in a program ROM of a ROM 13 or the controlprogram, etc., stored in an external memory 14. Also, the program ROM ofthe ROM 13 stores a control program, etc., of the CPU 12. A font ROM ofthe ROM 13 stores font data, etc., to be used when the above-describedoutput information is created. A data ROM of the ROM 13 storesinformation, etc., to be used in the host computer 3000 when the printer1500 does not have an external memory 14 such as a hard disk, etc.

The CPU 12 is capable of performing communication processing with thehost computer 3000 through an input part 18, and is capable of providingnotification information, etc., of the printer 1500 to the host computer3000. Reference numeral 19 is a RAM which functions as a main memory, awork area, etc., of the CPU 12, and the memory capacity thereof can beexpanded by an optional RAM connected to an unillustrated expansionport. In this regard, the RAM 19 is used for an output informationexpansion area, environment data storage area, an NVRAM (Non-VolatileRAM), etc.

The external memory 14, which is a hard disk (HD), an IC card, etc., isaccess controlled by a memory controller (MC) 20. The external memory 14is connected as an option, and stores font data, an emulation program,form data, etc. Also, reference numeral 1501 is an operation panel, andswitches for operation and LED displays, etc., are disposed thereon.Also, the above-described external memory 14 is not limited to a singledevice. At least one or more of the external memories 14 may beincluded, and a plurality of optional font cards and external memoriesstoring programs which interpret printer controller languages fordifferent language systems may be connected in addition to the internalfonts. Furthermore, an NVRAM (not shown) may be included, andprinter-mode setting information from the operation panel 1501 may bestored there.

Next, a description will be provided of a system for expanding thefunctions of a printer driver 204 in accordance with an embodiment ofthe present invention. FIG. 10 is a diagram illustrating an expansionsystem of the printer driver 204. FIG. 10 illustrates a structure of aUI when a plug-in module is added to the printer driver 204. In FIG. 10,the plug-in module includes a UI plug-in 1404 having an additionalfunction of a UI driver 1403, and a graphics driver 1406 having anadditional function of a graphics driver 1405. With reference to FIG.10, a description will be given of each of the plug-in modules.

The UI plug-in 1404 is used when the printer driver 204 adds a new sheetto the print setting sheet (UI) provided to the user, and when variousevent processing installed in the UI driver 1403 such as the processingperformed by the UI driver 1403 at installation time is customized. TheUI driver 1403 obtains the interface published by the UI plug-in 1404when a DDI (device driver interface) exported to the system is called.The customization processing installed in the UI driver 1403 is executedby communicating with the UI plug-in 1404 using the interface of the UIplug-in 1404 obtained by the UI driver 1403.

At the same time, the graphics plug-in 1406 is used when DDI processing,which is an interface between GDI (graphics device interface) 1402 andthe graphics driver 1405, is intercepted or processing is added at aspecific timing, or the spool processing of the print data isintercepted. The DDI exported by the graphics driver 1405 isappropriately called from the GDI 1402 in order to create a job. At thetiming of the initialization thereof, the graphics driver 1405 obtainsthe interface published by the graphics plug-in 1406, and holds it inthe RAM 2. The processing of the graphics plug-in 1406 corresponding tothe DDI is called at the timing of the DDI being called using theinterface obtained here. The called graphics plug-in 1406 executes theprocessing installed in the plug-in, and the processing is returned tothe graphics driver 1405 again.

Here, when the processing is intercepted by the graphics plug-in 1406,the DDI terminates the processing there, and if additional processing isinstalled, the subsequent processing continues without change. When theprint data spool processing of the graphics driver 1405 is interceptedby the graphics plug-in 1406, the interface of the graphics plug-in 1406is called immediately before the print data in the graphics driver 1405is spooled. The called graphics plug-in 1406 obtains the data to bespooled, performs specific processing, and then calls a spool processingfunction of the graphics driver 1405 again, thereby passing specificprocessed data to the graphics driver 1405. The graphics driver 1405,which has received the data, executes the processing for actuallyspooling the data into a system spooler 1407. In this manner, byinstalling the additional function in the plug-in module, an expansionsystem of the printer driver 204 is achieved.

Next, a description will be given of a memory map in a state in which aprint processing related program (printer driver) has been loaded intothe RAM 2 in the host computer 3000, and has become executable. FIG. 2is a diagram illustrating an example of the memory map in a state inwhich a print processing related program (printer driver) has beenloaded into the RAM 2 of the host computer 3000, and has becomeexecutable. As shown in FIG. 2, a memory map, which includes anapplication 201, a free memory 202, related data 203, a print processingrelated program (in the following, referred to as a printer driver) 204,an OS 205, and a BIOS 206, is formed in the RAM 2.

Moreover, FIG. 3 is a diagram illustrating the configuration of each ofthe modules in a state in which an additional functional plug-in moduleset 310 is installed in a printer driver 204. As shown in FIG. 3, in theplug-in installation set 310, a plug-in module 309 and an individualconflict processing rule 308 of the plug-in module 309 are supplied.Also, before a plug-in is added, the printer driver 204 includes aconflict processing rule 301, an inference engine 302, a conflictmanager 303, a state variable list 304, an internal structure 305, and adriver management part 306. Note that in the present exemplaryembodiment, the additional functionality to be added to the printerdriver 204 is a book-binding print function as further described withreference to FIGS. 8A and 8B. This is accomplished by incorporating theplug-in module 309 with the print driver 204.

Reference numeral 301 is the conflict processing rule, and includes thedefinitions of rules for preventing inconsistencies between settings ofthe printer driver 204 before a plug-in is added. In this regard, aspecific example of the conflict processing rules will be described withreference to FIG. 7. Reference numeral 303 is a conflict manager, andperforms management in order to match both data of the state variablelist 304 and the internal structure 305. The state variable list 304contains state variables such as Group, Staple, and Collate, whichdefine print functions. These functions (also referred to as settingitems) can be selected via the printer driver 204 to initiate thefunctions. The state variable list 304 also has on or off values(settings) indicating whether these printer functions are on or off.Also, the data in the internal structure 305 are members (for example,cGroup, cStaple, and cCollate), which are variables corresponding to thesetting items (for example, group, staple, and sort) capable of beingset by the printer driver 204 and the values (on=1, off=0).

Reference numeral 302 is the inference engine, which reads the conflictprocessing rule 301 and the conflict processing rule 308 of the plug-inthrough the conflict manager 303, performs a conflict check (thechecking of whether the settings comply with the rules), and sends backthe result thereof to the conflict manager 303. Unlike the related art,the inference engine 302 can accurately perform conflict checkingbecause of the availability of rules (e.g., conflict processing rule308), which are compatible with the original printer driver and areprovided with the plug-in module. Reference numeral 306 is the drivermanagement part, which performs display control of the UI for performinginitialization processing and the print settings and operation controlin the printer driver 204 in response to a print setting request, etc.,from the application 201. Also, the driver management part 306 requeststhe conflict manager 303 to perform conflict processing so thatinconsistencies between each of the settings do not occur. Also, thedriver management part 306 also exchanges data between the plug-inmodule 309.

Here, a description will be given of how the conflict manager 303 andthe inference engine 302 shown in FIG. 3 perform the conflict processingusing the state variable list 304, the internal structure 305, and theconflict processing rule 301 by a simple specific example. FIG. 4 is adiagram illustrating a specific example of the conflict processing inthe conflict manager 303 and the inference engine 302. In this regard,in FIG. 4, the variable list 304 and the internal structure 305 aredescribed in the frame of the conflict manager 303, and the conflictprocessing rule 301 is described in the inference engine 302 in order toshow that the conflict manager 303 uses the variable list 304 and theinternal structure 305, and the inference engine 302 uses the conflictprocessing rule 301.

In a specific example shown in FIG. 4, an example of conflict processingin accordance with the settings of the printer functional names A, B,and C are shown. As shown in FIG. 4, the internal structure 305 storesmembers int cA, cB, cC, . . . corresponding to the printer functionalnames A, B, C, . . . and the values thereof 0, 1, 0, . . . . Theconflict manager 303 generates a state variable list 304 containing thestate variable A=OFF, the state variable B=ON, the state variable C=OFF,. . . by referring to the members and the values thereof in the internalstructure 305. The inference engine 302 refers to the state variablelist 304, and thus the initial values of the state values of the printerfunctional names A, B, and C in the inference engine 302 become OFF, ON,and OFF, respectively.

Also, suppose that the conflict processing rule 301 contains thefollowing rule:

-   A (ON)<−B (ON), C (OFF).    This is a definition of a rule stating that when the function B is    ON and the function C is OFF, the function A is turned ON. The    inference engine 302 reads the conflict processing rule 301 through    the conflict manager 303. Here, suppose that the inference engine    302 has read the conflict processing rule 301. Since the initial    values are such that the printer functional name B=ON and the    printer functional name C=OFF, the rule stating that A (ON)<−B (ON),    C (OFF), defined in the conflict processing rule 301, requires that    A be turned ON. Thus the inference engine 302 changes the state    variable of the printer functional name A on the left side to ON.    That is, the inference engine 302 updates the state variable of the    state variable list 304 to become A=ON.

After the inference engine 302 has completed the inference of theconflict check, the conflict manager 303 reflects the changed value ofthe state variable A onto the corresponding member int cA in theinternal structure 305 of the printer driver 204. That is, the value ofthe int cA is changed from 0 to 1 by satisfying the above-describedrule. By the processing as shown above, the conflict manager 303 and theinference engine 302 update the state variable list 304 such thatsettings do not conflict with each other. By conflict, it is meant thatone cannot simultaneously have both the “Staple” function, for example,and the “Collate” function, for example, as printer settings. The drivermanagement part 306 reflects this result onto the setting information(int cA, cB, . . . ) in the internal structure 305 to be used for UI.

In this regard, it should be noted that the rule defined in the conflictprocessing rule 301 is simple and exemplary. Although not discussed, therules can either be simpler or more complicated relative to thediscussed example. Other examples in conflict processing rule 301 are asfollows.

(Conflict Processing Rule 301)Collate (OFF)<−Group (ON)  (2)Collate (OFF)<−Staple (ON)  (3)Collate (ON)<−Group (OFF)  (4)

The conflict processing rule 308 of the plug-in module set 310 similarlycontains specific defined rules. As an example, the following rule isdefined therein.

(Conflict Processing Rule 308)Group (OFF)<−Booklet(ON)  (1)Here, Collate means that documents are sorted or ordered in a propersequence, Group indicates that documents are collected or aggregatedtogether into units, Staple means that documents are fastened togetherby a stapling pin, and Booklet indicates a book-binding print function,wherein documents are bound together into a book.

Next, a description will be given of the processing on the UI of theprinter driver 204 in the host computer 3000 according to the presentembodiment. When the initialization processing included in the printerdriver 204 is called by the application 201 running under the control ofthe OS 205, the printer driver 204 is loaded into the RAM 2 under thecontrol of the OS 205. When the printer driver 204 is loaded into theRAM 2, the initialization processing part of the printer driver 204included in the driver management part 306 is called, and theinitialization processing is performed.

FIG. 5 is a diagram illustrating a flow of the initialization processingwhen the application 201 shown in FIG. 3 opens a UI of the printerdriver 204. In this regard, the plug-in module 309 shown in FIG. 5 isincorporated in the printer driver 204 by the plug-in as shown in FIG.3.

First, the application 201 inquires of the printer driver 204 about thesize of the memory area for storing the internal structure of theprinter driver 204 (step S501). Thus the printer driver 204 inquires ofthe plug-in module 309 about the size of the data area of the internalstructure necessary for the plug-in module 309 (step S502). The plug-inmodule 309 calculates (step S503) the size of the area (the size of anindividual data area) of the necessary internal structure, and returnsthe size of the calculated individual data area to the printer driver204 (step S504). After obtaining the size of the individual data areafrom the plug-in module 309 (step S505), the printer driver 204 returnsto the application 201 the sum of the size of the data area in theinternal structure 305 for the printer driver 204 and the size of theindividual data of the plug-in module 309 obtained in theabove-described step S505 (step S506).

The application 201 receives the value returned from the printer driver204 (step S507), and acquires a memory area for the obtained size in thefree memory 202 (step S508). The application 201 passes the memory areaacquired in the above-described step S508, and instructs the printerdriver 204 to open the UI of the printer driver 204 (step S509). Theinternal structure 305 at this time has, for example, a memory map asshown in FIG. 6. FIG. 6 is a diagram illustrating the example of amemory map of the internal structure 305 used by the printer driver 204.As shown in FIG. 6, the internal structure 305 includes a public area601, a driver private area 602 corresponding to the size of the dataarea for the printer driver 204, and a plug-in private area 603corresponding to the size of the individual data area of the plug-inmodule 309. Next, the interface of the printer driver 204 is calledbased on the instruction in step S509 (step S510).

The printer driver 204 inquires of the plug-in module 309 about thestorage location of the conflict processing rule 308 supplied with theplug-in module 309 (step S511). Thus the plug-in module 309 returns tothe printer driver 204 the storage location of the file in which theconflict processing rule 308 related to the setting values of theplug-in module 309 are described (step S512).

The inference engine 302 reads the conflict processing rule 308 suppliedwith the plug-in module 309 into the RAM 2 through the conflict manager303, and then reads the conflict processing rule 301 (step S513).

As described in FIG. 4, for all the printer functional names defined inthe conflict processing rules 301 and 308, the state variables and thevalues thereof corresponding to individual printer functional names areheld as the state variable list 304. As shown in FIG. 4, the values ofthe state variables in the state variable list 304 are linked with thecorresponding members in the internal structure 305 used in the printerdriver 204. The initial values of all the state variables in the statevariable list 304 are set to the values of the members of the internalstructure 305.

In step S514, the initialization processing of the state variables isperformed through the conflict manager 303. In the initializationprocessing, the state variable list 304 of the printer driver 204 isgenerated by referring to the internal structure 305, and then aninstruction of the initialization of the state variables originally heldby the plug-in module 309 is given to the plug-in module 309 (stepS515). Thus the plug-in module 309 returns the initialized statevariables (in this embodiment) to the printer driver 204 (step S516).The printer driver 204 receives the state variables of the plug-inmodule 309, and adds the variables to the state variable list 304through the conflict manager 303 (step S517).

Next, the printer driver 204 inquires the information on the plug-inindividual setting sheet in order to display the setting sheet which isa plug-in module 309 individual setting sheet as shown in FIGS. 8A and8B (step S518). The plug-in module 309 creates an individual settingsheet (step S519), and returns the created individual setting-sheetinformation to the printer driver 204 (step S520). Thus the printerdriver 204 obtains the individual setting-sheet information of theplug-in module 309 (step S521). Next, in the printer driver 204, theinference engine 302 performs the conflict check and updates the statevariable list 304, and the conflict manager 303 performs the conflictprocessing such as the update of the internal structure 305. If thereare inconsistencies among the settings, a correction is made (step S522)by updating the state variable list 304 and the internal structure 305.Next, in addition to the setting sheet of the printer driver 204, thesetting sheet of the plug-in module 309 obtained in the above-describedstep S521 is added, and the UI as shown in FIG. 8A is displayed (stepS522).

FIG. 8A is a diagram illustrating an example of a print setting sheet,which is a UI provided to the user by the printer driver 204 after theplug-in is added. As shown in FIG. 8A, a setting sheet 80 (tabbed sheet)of the plug-in module 309, which is “Plug-in setting”, is added to theoriginal setting sheets (Page setting, finishing, Paper feed, and Paperquality) of the printer driver 204. Also, the setting sheet 80 has acheck box 81 for setting on/off of the book-binding print function bythe user. In this regard, in the setting sheet 80 in FIG. 8A, the checkbox 81 is not checked, and thus the book-binding print function is in anoff state (a state in which the state variables are initial values).

Here, the user checks the box 81 of FIG. 8A to select the bookbindingfunction as shown in FIG. 8B. FIG. 8B shows a checked box 81 to indicatethat bookbinding print function is selected. Next, conflict processingwhen the bookbinding print function is selected is described. FIG. 7 isa flowchart illustrating conflict processing when the bookbinding printfunction is selected.

First, in step S701, the update of the internal structure 305 and thestate variable list 304 is performed in accordance with the user's checkoperation of the check box 81 from the state in FIG. 8A to the state inFIG. 8B. Next, upon receiving the UI operation in step S701, theconflict processing rule 308 of the plug-in module 309 read in step S513in FIG. 5 is applied (step S702). Subsequently, the processing to applythe conflict processing rule 301 held by the printer driver 204 mainunit is performed (step S703). The state variables of the state variablelist 304 are updated corresponding to the conflict processing (stepS704).

In this regard, in the present embodiment, the application of theprocessing rules of steps S702 to S703 are performed in accordance withthe order of the rules read in step S513. Also, the priorities of theprocessing rules are determined in accordance with the order of theapplication of the plurality of processing rules. In the presentembodiment, the conflict processing rule 308 has a higher priority thanthe conflict processing rule 301. In this regard, if the conflictprocessing rule 301 needs to have a higher priority, the processing toapply the conflict processing rule 301 is performed in advance.

Here, a description will be given of steps S701 to S704 by showingspecific examples. For example, suppose that the internal structure 305contains cCollate, cGroup, cStaple, and cBooklet as memberscorresponding to printer functions. Also, the values of the individualmembers before the application of the conflict processing rules justbefore step S701 are as follows.

-   cCollate=0-   cGroup=1-   cStaple=0-   cBooklet=0

In the state variable list 304, the state variables cCollate, cGroup,cStaple, and cBooklet, which correspond to individual members, and thestate values become as follows:

-   Collate=OFF-   Group=ON-   Staple=OFF-   Booklet=OFF

At this time, as shown in FIG. 9A, a group function radio button 92 ofthe finishing-touch setting sheet 90, which is a UI provided by theprinter driver 204, is selected while the sort function radio button 91is not selected. In this regard, since the user's operation, whichchanges to FIG. 8B, is not yet performed (before step S701), Bookletremains OFF.

The printer driver 204 then receives a request to change the setting ofthe bookbinding print function to ON from the application 201 inresponse to step S701. By this, the member cBooklet of the internalstructure 305 is updated from 0 to 1 as shown below.

-   cCollate=0-   cGroup=1-   cStaple=0-   cBooklet=1

Next, the driver management part 306 calls the conflict manager 303, andupdates the Booklet state variable in the state variable list from offto ON. By this, the state variable list 304 becomes as follows.

-   Collate=OFF-   Group=ON-   Staple=OFF-   Booklet=ON

Subsequently, in step S702, the inference engine 302 is called, and theapplication of the conflict processing rule begins. Reference will nowbe made back to the exemplary rules (1), (2), (3) and (4), previouslydefined. In summary, by application of these rules, when Booklet isturned ON, group is OFF, which means that collate is ON. Specifically,first, each of the printer functional names in the inference engine 302is initialized by the value held by each of the state variables of thestate variable list 304. Subsequently, the example (1) of the rules ofthe conflict processing rule 308 read in step S513 before is applied,and the state value of the state variable Group is changed from ON toOFF. In this regard, the example (1) of the rules is a rule defined byGroup (OFF)<−Booklet (ON) as described above.

By this, the state values of the state variable list 304 are updated asfollows.

-   Collate=OFF-   Group=OFF-   Staple=OFF-   Booklet=ON

Next, in step S703, the example (4) of the rules of the conflictprocessing rule 301 is applied, and the state value of the statevariable Collate is changed from OFF to ON. In this regard, the example(4) of the rules is a rule defined by Collate (ON)<−Group (OFF) asdescribed above. Since there is no other rules to be applied in theconflict processing rule 301, the application of the conflict processingrule in the inference engine 302 is completed.

By this, the state values of the state variable list 304 are updated asfollows (step S704).

-   Collate=ON-   Group=OFF-   Staple=OFF-   Booklet=ON

As shown above, by the processing in steps S701 to S703, the conflictprocessing is performed based on changes in the setting sheets UI.

Returning to the flowchart in FIG. 7, in step S704, the state variablelist 304 is updated in accordance with the conflict processing rules 301and 308, and then the conflict manager 303 updates the internalstructure 305 in accordance with the updated state variable list 304(step S705). Specifically, the values of the members become as follows.

-   cCollate=1-   cGroup=0-   cStaple=0-   cBooklet=1

Next, the printer driver 204 determines whether a state variable of theplug-in module 309 has been updated in step S704 (step S706). Here, ifthe state variable is determined to have been updated (YES in stepS706), the printer driver 204 calls the plug-in module 309, controls thecontrol of the plug-in module 309 individual setting sheet in accordancewith the change of the state variables (step S707). When the printerdriver 204 updates the control in the plug-in module 309 individualsetting sheet (step S708), the processing is returned to the printerdriver 204. By this, the printer driver 204 performs the processing instep 709 shown below.

Also, when the state variables of the plug-in module 309 are not updatedin step S706 (NO in step S706), in step 709, the printer driver 204controls the control of the setting sheets in the printer driver 204main unit in accordance with the state variables updated in step S704.Next, in step S710, the printer driver 204 updates the control whichperforms control in the setting sheets in the printer driver 204 mainunit, and completes the conflict processing and the UI processing.

In this manner, by the example of the conflict processing in accordancewith the change is setting of steps S701 to S710, the finishing settingsheet 90 is changed as shown from FIG. 9A before conflict processing, toFIG. 9B after the conflict processing rules are applied. That is, aradio button 92 of the Group (the member name in the internal structureis “Group”) function is originally selected in the “finishing” settingsheet 90, and then by the application of the conflict processing rule, aradio button 91 of the sort (the member name in the internal structure305 is “Collate”) function is selected to be changed to an on state.

The processing as described above is executed repeatedly until endprocessing provided in the printer driver management part 306 is calledby the application 201. When the end processing of the printer driver204 is called by the application 201, the information of the conflictprocessing rules 301 and 308, etc., generated in the free memory 202 isdeleted, and the other end processing is performed. By this, all theprocessing is completed, the processing of the printer driver 204 in thepresent embodiment is completed, and the deletion from the RAM 2 isperformed by the function of the OS 205.

As described above, in the host computer 3000 according to the presentembodiment, even if the plug-in module 309 is incorporated in theprinter driver 204, by referring to the conflict processing rule 308 ofthe plug-in module 309, it is possible to prevent inconsistencies fromoccurring among the settings in the printer driver 204 after the plug-inis added. That is, in the host computer 3000 according to the presentembodiment, it is possible to perform accurate conflict processing evenin the environment in which a new function is added to the printer in aplug-in form.

In this regard, in the present embodiment, an external memory is usedfor the medium for storing the printer driver 204. However, a FD(flexible disk), a HD drive, a CD-ROM, an IC memory card, etc., can beused for the external memory 11. Furthermore, this printer driver 204 byitself or together with the OS 205 and the other programs running on thehost computer 3000 may be recorded in the ROM 3, then may be configuredas part of the memory map, and may be directly executed by the CPU 1.

Also, in the above-described embodiment, various functions are achievedby reading the programs for achieving the functions in the host computer3000 into the memory (RAM) and the CPU executing these functions.However, the invention is not limited to this, and all of the processingor part of the functions may be achieved by dedicated hardware. Also,the above-described memory may be constituted by a non-volatile memorysuch as a magnetic optical disk unit, a flash memory, etc., a read-onlyrecording medium such as a CD-ROM, etc., a volatile memory other than aRAM, or a computer-readable and writable recording medium by thecombination of these.

Also, a program for achieving various processing functions in the hostcomputer 3000 may be recorded into a computer-readable recording medium,and the program recorded in the recording medium may be read into acomputer system, and each processing may be performed by executing theprogram. In this regard, a “computer system” mentioned here includes anOS, hardware such as a peripheral device, etc.

Also, a “computer-readable recording medium” means a portable mediumsuch as a flexible disk, a magnetic optical disk, a ROM, a CD-ROM, etc.,and a storage device such as a hard disk contained in a computer system.Furthermore, a “computer-readable recording medium” includes a devicefor holding a program for a certain period of time such as an internalvolatile memory (RAM) of a computer system to be a server or a clientwhen the program is transmitted through a network such as the Internet,etc., and a communication line such as a telephone line, etc.

Also, the above-described program may be transmitted from a computersystem storing the program in a storage device, etc., through atransmission medium, or may be transmitted to another computer system bya transmitted wave in the transmission medium. Here, a “transmissionmedium” for transmitting the program means a medium having aninformation transmission function such as a network (communicationnetwork), for example, the Internet, etc., and the communication linesuch as a telephone line, etc. Also, the above-described program mayachieve part of the above-described functions. Furthermore, the programmay achieve the above-described functions by combining with the programthat is already recorded in a computer system, that is, the program maybe a differential file (differential program).

Also, a program product such as a computer-readable recording mediumwhich records the above-described program may be applied to anembodiment of the present invention. The above-described program,recording medium, a transmission medium, and the program product areincluded in the scope of the present invention. As described above, adetailed description has been given of the embodiments of the presentinvention with reference to the drawings. However, a specific structureis not limited to the embodiments, and a design, etc., are includedwithin the spirit and scope of the present invention.

While the present invention has been described with reference to whatare presently considered to be the embodiments, it is to be understoodthat the invention is not limited to the disclosed embodiments. On thecontrary, the invention is intended to cover various modifications andequivalent arrangements included within the spirit and scope of theappended claims. The scope of the following claims is to be accorded thebroadest interpretation so as to encompass all such modifications andequivalent structures and functions.

In a second embodiment, a description will be given of a system in whicha tint-block print function is expanded in a plug-in form. The conflictprocessing rule 308 of the plug-in according to the second embodimentcontains, for example, the definition of a rule example (1) as shownbelow.RESOLUTION (600)<−SECUREMARK (ON)  (1)where RESOLUTION indicates the resolution setting, and SECUREMARKindicates a tint-block print function. The rule (1) is the conflictprocessing rule showing that when the tint-block print function isvalid, the resolution setting is limited to 600 dpi.

Next, a description will be given of the processing on the UI of theprinter driver 204 in the host computer 3000 according to the presentembodiment. When the initialization processing included in the printerdriver 204 is called by the application 201 running under the control ofthe OS 205, the printer driver 204 is loaded into the RAM 2 under thecontrol of the OS 205. When the printer driver 204 is loaded into theRAM 2, the initialization processing part of the printer driver 204included in the driver management part 306 is called, and theinitialization processing is performed.

FIG. 5 is a diagram illustrating a flow of the initialization processingwhen the application 201 shown in FIG. 3 opens a UI of the printerdriver 204. In this regard, the plug-in module 309 shown in FIG. 5 isincorporated in the printer driver 204 by the plug-in as shown in FIG.3.

First, the application 201 inquires of the printer driver 204 about thesize of the memory area for storing the internal structure of theprinter driver 204 (step S501). Thus the printer driver 204 inquires ofthe plug-in module 309 about the size of the data area of the internalstructure necessary for the plug-in module 309 (step S502). The plug-inmodule 309 calculates (step S503) the size of the area (the size of anindividual data area) of the necessary internal structure, and returnsthe size of the calculated individual data area to the printer driver204 (step S504). After obtaining the size of the individual data areafrom the plug-in module 309 (step S505), the printer driver 204 returnsto the application 201 the sum of the size of the data area in theinternal structure 305 necessary for the printer driver 204 and the sizeof the individual data of the plug-in module 309 obtained in theabove-described step S505 (step S506).

The application 201 receives the value returned from the printer driver204 (step S507), and acquires a memory area for the obtained size in thefree memory 202 (step S508). The application 201 passes the memory areaacquired in the above-described step S508, and instructs the printerdriver 204 to open the UI of the printer driver 204 (step S509). Theinternal structure 305 at this time has, for example, a memory map asshown in FIG. 6. FIG. 6 is a diagram illustrating the example of amemory map of the internal structure 305 necessary for the printerdriver 204. As shown in FIG. 6, the internal structure 305 includes apublic area 601, a driver private area 602 corresponding to the size ofthe data area necessary for the printer driver 204, and a plug-inprivate area 603 corresponding to the size of the individual data areaof the plug-in module 309. Next, the interface of the printer driver 204is called based on the instruction in step S509 (step S510).

The printer driver 204 inquires of the plug-in module 309 about thestorage location of the conflict processing rule 308 supplied with theplug-in module 309 (step S511). Thus the plug-in module-309 returns tothe printer driver 204 the storage location of the file in which theconflict processing rule 308 related to the setting values of theplug-in module 309 are described (step S512).

The inference engine 302 reads the conflict processing rule 308 suppliedwith the plug-in module 309 into the RAM 2 through the conflict manager303, and then reads the conflict processing rule 301 (step S513).

As described in FIG. 4, for all the printer functional names defined inthe conflict processing rules 301 and 308, the state variables and thevalues thereof corresponding to individual printer functional names areheld as the state variable list 304. As shown in FIG. 4, the values ofthe state variables in the state variable list 304 are linked with thecorresponding members in the internal structure 305 used in the printerdriver 204. The initial values of all the state variables in the statevariable list 304 are set to the values of the members of the internalstructure 305.

In step S514, the initialization processing of the state variables isperformed through the conflict manager 303. In the initializationprocessing, the state variable list 304 of the printer driver 204 isgenerated by referring to the internal structure 305, and then aninstruction of the initialization of the state variables originally heldby the plug-in module 309 is given to the plug-in module 309 (stepS515). Thus the plug-in module 309 returns the initialized statevariables (in this embodiment) to the printer driver 204 (step S516).The printer driver 204 receives the state variables of the plug-inmodule 309, and adds the variables to the state variable list 304through the conflict manager 303 (step S517).

Next, the printer driver 204 inquires the information on the plug-inindividual setting sheet in order to display the setting sheet which isa plug-in module 309 individual setting sheet as shown in FIGS. 11A and11B (step S518). The plug-in module 309 creates an individual settingsheet (step S519), and returns the created individual setting-sheetinformation to the printer driver 204 (step S520). Thus the printerdriver 204 obtains the individual setting-sheet information of theplug-in module 309 (step S521). Next, in the printer driver 204, theinference engine 302 performs the conflict check and updates the statevariable list 304, and the conflict manager 303 performs the conflictprocessing such as the update of the internal structure 305. If thereare inconsistencies among the settings, a correction is made (stepS522). Next, in addition to the setting sheet of the printer driver 204,the setting sheet of the plug-in module 309 obtained in theabove-described step S521 is added, and the UI as shown in FIG. 11A isdisplayed (step S522).

FIG. 11A is a diagram illustrating an example of a print setting sheet,which is a UI provided to the user by the printer driver 204 after theplug-in is added. As shown in FIG. 11A, a setting sheet 110 of theplug-in module 309, which is “Tint-block print setting”, is added to theoriginal setting sheets (Page setting, finishing, Paper feed, and Paperquality) of the printer driver 204. Also, the setting sheet 110 has acheck box 111 for setting on/off of the tint-block print function by theuser. In this regard, in the setting sheet 110 in FIG. 11A, the checkbox 111 is not checked, and thus the tint-block print function is in anoff state (a state in which the state variables are initial values).

Here, in the setting sheet 110 in FIG. 11A, the user checks the checkbox 111 as shown in FIG. 11B, and thus the tint-block print function isturned on. FIG. 11B is a diagram illustrating a state in which thetint-block print function is turned on in the example of the printsetting sheet in FIG. 11A. Next, a description will be given of theconflict processing when the tint-block print function, which is aplug-in function, is turned on as shown in FIG. 11B. FIG. 7 is aflowchart illustrating the conflict processing when the tint-block printfunction as shown in FIG. 11B, which is a plug-in function, is changedto on.

First, in step S701, the update of the internal structure 305 and thestate variable list 304 is performed in accordance with the user's checkoperation of the check box 111 from the state in FIG. 11A to the statein FIG. 11B. Next, upon receiving the UI operation in step S701, theconflict processing rule 308 of the plug-in module 309 read in step S513in FIG. 5 is applied (step S702). Subsequently, the processing to applythe conflict processing rule 301 held by the printer driver 204 mainunit is performed (step S703). The state variables of the state variablelist 304 are updated corresponding to the conflict processing (stepS704).

In this regard, in the present embodiment, the application of theprocessing rules of steps S702 to S703 are performed in accordance withthe order of the rules read in step S513. Also, the priorities of theprocessing rules are determined in accordance with the order of theapplication of the plurality of processing rules. In the presentembodiment, the conflict processing rule 308 has a higher priority thanthe conflict processing rule 301. In this regard, if the conflictprocessing rule 301 needs to have a higher priority, the processing toapply the conflict processing rule 301 is performed in advance.

Here, a description will be given of steps S701 to S704 by showingspecific examples. For example, suppose that the internal structure 305contains cResolution and cSecureMark as members corresponding to printerfunctions. Also, the values of the individual members before theapplication of the conflict processing rules just before step S701 areas follows.

-   cResolution=300-   cSecureMark=0

By this operation, in the state variable list 304, the state variablesResolution and SecureMark, which correspond to individual members, andthe state values become as follows.

-   Resolution=300-   SecureMark=OFF

At this time, the state of the print-quality setting sheet 120, which isa UI provided by the printer driver 204, is in a state, as shown in FIG.12A, in which a resolution-setting radio button of 300 dpi is selected.In this regard, since the user's operation, which changes to FIG. 12B,is not yet performed (before step S701), the tint-block print functionremains OFF.

In such a state, the printer driver 204 receives a change request forchanging the setting of the tint-block print function to on from theuser in response to step S701. By this, the member cSecureMark of theinternal structure 305 is updated from 0 to 1 as shown below.

-   cResolution=300-   cSecureMark=1

Next, the driver management part 306 calls the conflict manager 303, andupdates the Secure state variable in the state variable list from off toon. By this, the state variable list 304 becomes as follows.

-   Resolution=300-   SecureMark=ON

Subsequently, in step S702, the inference engine 302 is called, and theapplication of the conflict processing rule begins. First, each of theprinter functional names in the inference engine 302 is initialized bythe value held by each of the state variables of the state variable list304. Subsequently, the example (1) of the rules of the conflictprocessing rule 308 read in step S513 before is applied, and the statevalue of the state variable Resolution is changed from 300 to 600. Inthis regard, the example (1) of the rules is a rule defined byRESOLUTION (600)<−SECUREMARK (ON) as described above.

By this, the state values of the state variable list 304 are updated asfollows.

-   Resolution=600-   SecureMark=ON

Next, in step S703, since there is no other rules to be applied in theconflict processing rule 301, the application of the conflict processingrule in the inference engine 302 is completed (step S704).

As shown above, by the processing in steps S701 to S703, the conflictprocessing is performed according to the change of the settingsperformed on the UI.

Returning to the flowchart in FIG. 7, in step S704, the state variablelist 304 is updated in accordance with the conflict processing rules 301and 308, and then the conflict manager 303 updates the internalstructure 305 in accordance with the updated state variable list 304(step S705). Specifically, the values of the members become as follows.

-   cResolution=600-   cSecureMark=1

Next, the printer driver 204 determines whether or not a state variableof the plug-in module 309 has been updated in step S704 (step S706).Here, if the state variable is determined to have been updated (YES instep S706), the printer driver 204 calls the plug-in module 309,performs controlling the control in the plug-in module 309 individualsetting sheet in accordance with the change of the state variables (stepS707). When the printer driver 204 updates the control in the plug-inmodule 309 individual setting sheet (step S708), the processing isreturned to the printer driver 204. By this, the printer driver 204performs the processing in step 709 shown below.

Also, when the state variables of the plug-in module 309 are not updatedin step S706 (NO in step S706), in step 709, the printer driver 204performs controlling the control in the setting sheets in the printerdriver 204 main unit in accordance with the state variables updated instep S704. Next, in step S710, the printer driver 204 updates thecontrol which performs control in the setting sheets in the printerdriver 204 main unit, and completes the conflict processing and the UIprocessing.

As described above, by the example of the conflict processing inaccordance with the setting change shown in steps S701 to S710, theprint-quality setting sheet 120 is changed from the state as shown inFIG. 12A before applying the conflict processing rule to the state shownin FIG. 12B after applying the conflict processing rule. That is to say,300 dpi is originally selected by a radio button 121 of the resolution(the member name in the internal structure is “Resolution”) setting inthe “print quality” setting sheet 120, and then by the application ofthe conflict processing rule, a change is made to a state in which 600dpi is selected by the radio button 121.

The processing as described above is executed repeatedly until endprocessing provided in the printer driver management part 306 is calledby the application 201. When the end processing of the printer driver204 is called by the application 201, the information of the conflictprocessing rules 301 and 308, etc., generated in the free memory 202 isdeleted, and the other end processing is performed. By this, all theprocessing is completed, the processing of the printer driver 204 in thepresent embodiment is completed, and the deletion from the RAM 2 isperformed by the function of the OS 205.

As described above, in the host computer 3000 according to the presentembodiment, even if the plug-in module 309 is incorporated in theprinter driver 204, by referring to the conflict processing rule 308 ofthe plug-in module 309, it is possible to prevent inconsistencies fromoccurring among the settings in the printer driver 204 after the plug-inis added. That is to say, in the host computer 3000 according to thepresent embodiment, it is possible to perform accurate conflictprocessing even in the environment in which a new function is added tothe printer in a plug-in form.

In this regard, in the present embodiment, an external memory is usedfor the medium for storing the printer driver 204. However, a FD(flexible disk), a HD drive, a CD-ROM, an IC memory card, etc., can beused for the external memory 11. Furthermore, this printer driver 204 byitself or together with the OS 205 and the other programs running on thehost computer 3000 may be recorded in the ROM 3, then may be configuredas part of the memory map, and may be directly executed by the CPU 1.

Also, in the above-described embodiment, various functions are achievedby reading the programs for achieving the functions in the host computer3000 into the memory (RAM) and the CPU executing these functions.However, the invention is not limited to this, and all of the processingor part of the functions may be achieved by dedicated hardware. Also,the above-described memory may be constituted by a non-volatile memorysuch as a magnetic optical disk unit, a flash memory, etc., a read-onlyrecording medium such as a CD-ROM, etc., a volatile memory other than aRAM, or a computer-readable and writable recording medium by thecombination of these.

Also, a program for achieving various processing functions in the hostcomputer 3000 may be recorded into a computer-readable recording medium,and the program recorded in the recording medium may be read into acomputer system, and each processing may be performed by executing theprogram. In this regard, a “computer system” mentioned here includes anOS, hardware such as a peripheral device, etc.

Also, a “computer-readable recording medium” means a portable mediumsuch as a flexible disk, a magnetic optical disk, a ROM, a CD-ROM, etc.,and a storage device such as a hard disk contained in a computer system.Furthermore, a “computer-readable recording medium” includes a devicefor holding a program for a certain period of time such as an internalvolatile memory (RAM) of a computer system to be a server or a clientwhen the program is transmitted through a network such as the Internet,etc., and a communication line such as a telephone line, etc.

Also, the above-described program may be transmitted from a computersystem storing the program in a storage device, etc., through atransmission medium, or may be transmitted to another computer system bya transmitted wave in the transmission medium. Here, a “transmissionmedium” for transmitting the program means a medium having aninformation transmission function such as a network (communicationnetwork), for example, the Internet, etc., and the communication linesuch as a telephone line, etc. Also, the above-described program mayachieve part of the above-described functions. Furthermore, the programmay achieve the above-described functions by combining with the programthat is already recorded in a computer system, that is to say, theprogram may be a differential file (differential program).

Also, a program product such as a computer-readable recording mediumwhich records the above-described program may be applied to anembodiment of the present invention. The above-described program,recording medium, a transmission medium, and the program product areincluded in the scope of the present invention. As described above, adetailed description has been given of the embodiments of the presentinvention with reference to the drawings. However, a specific structureis not limited to the embodiments, and a design, etc., are includedwithin the spirit and scope of the present invention.

While the present invention has been described with reference to whatare presently considered to be the preferred embodiments, it is to beunderstood that the invention is not limited to the disclosedembodiments. On the contrary, the invention is intended to cover variousmodifications and equivalent arrangements included within the spirit andscope of the appended claims. The scope of the following claims is to beaccorded the broadest interpretation so as to encompass all suchmodifications and equivalent structures and functions.

This application claims priority from Japanese Patent Application Nos.2003-403558 filed Dec. 2, 2003, and 2004-336381 filed Nov. 19, 2004,which are hereby incorporated by reference herein.

1. An information processing apparatus, in which an additional functioncan be further added to a function of a print processing relatedprogram, comprising: first rule storage means for storing a firstconflict processing rule determined in accordance with a dependencyrelation held between two or more settings of the function of the printprocessing related program; second rule storage means for storing asecond conflict processing rule determined in accordance with adependency relation held between settings of the function of the printprocessing related program and the additional function and; settingadjustment means for reading the first conflict processing rule and thesecond conflict processing rule from the first rule storage means andthe second rule storage means, and for performing setting adjustmentprocessing such that settings of the print processing related programfunction and the additional function do not conflict with each otherbased on the first conflict processing rule and the second conflictprocessing rule which have been read.
 2. The information processingapparatus according to claim 1, further comprising checking means forchecking whether the second conflict processing rule is stored in thesecond rule storage means when the additional function is added.
 3. Theinformation processing apparatus according to claim 1, wherein thesetting adjustment means applies the first conflict processing rule andthe second conflict processing rule in the order of descendingpriorities to perform setting adjustment processing such that settingsof the print processing related program function and the additionalfunction do not conflict with each other.
 4. The information processingapparatus according to claim 1, further comprising: display means fordisplaying various information, and screen display means for displaying,on the display means, a setting status screen allowing a user tovisually check a setting status of the print processing related programfunction and the additional function, wherein the setting status screendisplayed on the display means by the screen display means shows asetting status after setting adjustment processing by the settingadjustment means.
 5. The information processing apparatus according toclaim 4, wherein in the setting status screen displayed on the displaymeans by the screen display means, each setting of the print processingrelated program function or the additional function can be changed by auser's operation, and when the user has changed one or a plurality ofsettings of the print processing related program function or theadditional function, the setting adjustment means performs settingadjustment processing such that settings of the print processing relatedprogram function and the additional function do not conflict with eachother after the change based on the first conflict processing rule andthe second conflict processing rule which have been read.
 6. A method ofprint control using an information processing system in which anadditional function can be further added to a function realizable by aprint processing related program, the method comprising: a first step ofobtaining setting information on the settings of the print processingrelated program function and the additional function; and a second stepof reading a first conflict processing rule and a second conflictprocessing rule from a first rule storage means for storing the firstconflict processing rule determined in accordance with a dependencyrelation held between two or more settings of the function of the printprocessing related program and a second rule storage means for storingthe second conflict processing rule determined in accordance with adependency relation held between settings of the function of the printprocessing related program and the additional function, and forperforming setting adjustment processing such that settings of the printprocessing related program function and the additional function do notconflict with each other by referring to the setting informationobtained in the first step based on the first conflict processing ruleand the second conflict processing rule which have been read.
 7. Themethod of print control according to claim 6, further comprising achecking step of checking whether the second conflict processing rule isstored in the second rule storage means when the additional function isadded.
 8. The method of print control according to claim 6, wherein thesecond step reads the first conflict processing rule and the secondconflict processing rule, refers to the setting information obtained inthe first step, and applies the first conflict processing rule and thesecond conflict processing rule in the order of descending priorities toperform setting adjustment processing such that inconsistencies do notarise between any of two settings of the print processing relatedprogram function and the additional function.
 9. The method of printcontrol according to claim 6, when the information processing system hasdisplay means, the method further comprising: a screen display step ofdisplaying, on the display means, a setting status screen allowing auser to visually check a setting status of the print processing relatedprogram function and the additional function, wherein the setting statusscreen displayed on the display means in the screen display step shows asetting status after setting adjustment processing by the second step.10. The method of print control according to claim 9, in the settingstatus screen displayed on the display means in the screen display step,each setting of the print processing related program function and theadditional function can be changed by a user's operation, and when theuser has changed one or a plurality of settings of the print processingrelated program function or the additional function, the method furthercomprising the steps of: reading of the first conflict processing ruleand the second conflict processing rule from the first rule storagemeans and second rule storage means, and an after-change adjustment stepof performing setting adjustment processing such that inconsistencies donot arise between any of two settings of the print processing relatedprogram function and the additional function after the change based onthe first conflict processing rule and the second conflict processingrule which have been read.
 11. A control program for controlling amethod of print control using an information processing system in whichan additional function can be further added to a function realizable bya print processing related program, which causes a computer to performthe method of print control, the method comprising: a first step ofobtaining setting information on the settings of the print processingrelated program function and the additional function; and a second stepof reading a first conflict processing rule and a second conflictprocessing rule from a first rule storage means for storing the firstconflict processing rule determined in accordance with a dependencyrelation held between two or more settings of the function of the printprocessing related program and a second rule storage means for storingthe second conflict processing rule determined in accordance with adependency relation held between settings of the function of the printprocessing related program and the additional function, and forperforming setting adjustment processing such that inconsistencies donot arise between any of two settings of the print processing relatedprogram function and the additional function by referring to the settinginformation obtained in the first step based on the first conflictprocessing rule and the second conflict processing rule which have beenread.
 12. A method of printing by adding an additional function to afunction of a print driver used for printing within a computer system,the method comprising: obtaining settings of the print driver and theadditional function; providing a first conflict processing ruledetermined in accordance with a dependency relation held between two ormore settings of the function of the print processing related program;providing a second conflict processing rule determined in accordancewith a dependency relation held between settings of the function of theprint processing related program and the additional function and;determining whether the settings of the print driver and the additionalfunction conflict based on the first conflict processing rule and thesecond conflict processing rule; and if so, adjusting settings of theprint driver and the additional function by applying the first conflictprocessing rule and the second conflict processing rule so that saidadjusted settings do no conflict with each other.
 13. The method ofclaim 12, wherein the step of adjusting settings further comprisesapplying the first conflict processing rule and the second conflictprocessing rule in order of descending priorities so that said adjustedsettings do not conflict with each other.